type ProdP p = forall a b. (a -> b) -> p a b